// 上面这个代码处理过度动画（默认加上不用管）
document.addEventListener('DOMContentLoaded', () => {
  setTimeout(() => {
    document.body.classList.add('sidenav-pinned')
    document.body.classList.add('ready')
  }, 200)
})

// --------------------------------------------------------
// 每个页面都会导入该js 统一的设置写这里即可
// 统一设置基地址
// 弹出轻提示
// 初始化toast实例
const dom = document.querySelector('.toast')
const oToast = new bootstrap.Toast(dom)
// 封装函数tip
function tip(msg) {
  oToast._element.querySelector('.toast-body').innerHTML = msg
  oToast.show()
}

// 定义axios基地址
axios.defaults.baseURL = 'http://ajax-api.itheima.net'

// --------------------------------------------------------
// 渲染用户名
const uDom = document.querySelector('.font-weight-bold')
// 并不是所有的页面都有 显示用户名的结构，如果没有则会报错
// uDOM.innerHTML = localStorage.getItem('user_name')
// 所以使用if判断一下
if (uDom) {
  uDom.innerHTML = localStorage.getItem('user_name')
}

// ---------------- 用户退出
const exitDom = document.querySelector('#logout')
if(exitDom){
  exitDom.onclick = function(){
    localStorage.removeItem('user_token')
    localStorage.removeItem('user_name')
    location.href = './login.html'
  }
}

// 请求拦截器，统一携带token
axios.interceptors.request.use(function(config){
  config.headers = {
    authorization: localStorage.getItem('user_token')
  }
  return config;
}, function(err){
  console.log(err);
})

// 响应拦截器，统一处理401错误
axios.interceptors.response.use(function(res){
  return res
}, function(err){
  if(err){
    // console.dir(err);
    if(err.response.status === 401){
      tip('非法操作')
      localStorage.removeItem('user_token')
      localStorage.removeItem('user_name')
      setTimeout(function(){
        location.href="./login.html"
      }, 2000)
    }
  }
})